//
//  HHAudioRecorder.h
//  Pod
//
//  Created by chun.chen on 2018/4/21.
//  Copyright © 2018年 Zhihan. All rights reserved.
//  录音工具
//  lame 源码地址 https://sourceforge.net/projects/lame/files/lame/
//  lame 编译工具 https://github.com/kewlbear/lame-ios-build

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@protocol HHAudioRecorderDelegate <NSObject>

@optional
/**
 录音失败
 */
- (void)failRecord;

/**
 开始转换
 */
- (void)beginConvert;

/**
 转换结束

 @param fileName 转换后存储在本地的文件路径
 */
- (void)endConvertWithMP3FileName:(NSString *)fileName;


/**
 音频信号量变化

 @param singnalPower 变化的值
 */
- (void)recordSignalPowerDidChange:(CGFloat )singnalPower;

/**
 录制时长变化
 
 @param duration 变化的值
 */
- (void)recordDurationDidUpdate:(CGFloat )duration;

@end

@interface HHAudioRecorder : NSObject

@property (nonatomic, weak, nullable) id<HHAudioRecorderDelegate> delegate;

@property (nonatomic, assign, readonly) CGFloat duration;

// 获取信号量的时间间隔，默认0.5s
@property (nonatomic, assign) CGFloat singnalTime;

// 转码是否为异步，如果录音较长需要异步设为 YES，默认 NO
@property (nonatomic, assign) BOOL isAsynToMp3;

// 是否正在录音
@property (nonatomic, assign) BOOL recordering;

/**
 MP3 录音是缓存的文件存放路径

 @return path
 */
+ (NSString *)mp3CachePathWithFileName:(NSString *)fileName;

/**
 初始化

 @param delegate 委托
 @return self
 */
- (instancetype)initWithDelegate:(id<HHAudioRecorderDelegate>)delegate;

/**
 开始录音
 */
- (void)startRecord;

/**
 暂停录音
 */
- (void)pauseRecord;

/**
 继续录音
 */
- (void)resumeRecord;

/**
 停止录音
 */
- (void)stopRecord;

/**
 取消录音
 */
- (void)cancelRecord;
@end

NS_ASSUME_NONNULL_END
